iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 22
0
AI & Data

AI初見 從零開始的TensorFlow生活系列 第 22

DAY22 - 迴歸問題 - 房價預測模型 - 5

  • 分享至 

  • xImage
  •  

大家好,今天會是有關房價預測模型的最後一天,昨天進行模型的建立,設定優化器、損失函數、指標函數、回調函數,並且完成模型的訓練。接著今天就要觀察模型的訓練結果。

觀察訓練結果時會使用matplotlib.pyplot的方法繪製折線圖,來幫助我們觀察損失函數與指標函數計算出的結果。

首先要匯入套件:
import matplotlib.pyplot as plt

第一個要繪製的是損失函數計算出來的損失值,計算的方法是均方誤差,x軸表示訓練第幾次,y軸表示損失值,藍線代表訓練資料,橘線代表驗證資料。

plt.plot(history.history['loss'], label='train')
plt.plot(history.history['val_loss'], label='validation')
plt.title('MSE')
plt.ylabel('loss')
plt.xlabel('epochs')
plt.legend(loc='best')

https://ithelp.ithome.com.tw/upload/images/20201002/20112114lVz92ssA0d.jpg
再來是繪製指標函數計算出的效能指標,計算的方法是平均絕對誤差,x軸表示訓練第幾次,y軸表示效能指標,藍線代表訓練資料,橘線代表驗證資料。

plt.plot(history.history['mean_absolute_error'], label='train')
plt.plot(history.history['val_mean_absolute_error'], label='validation')
plt.title('MAE')
plt.ylabel('metrics')
plt.xlabel('epochs')
plt.legend(loc='best')

https://ithelp.ithome.com.tw/upload/images/20201002/20112114Po4UA1Sz95.jpg
最後則是用測試資料的預測房價來與答案計算誤差率。

model = keras.models.load_model('lab2-logs/models/Best-model-1.h5')
y_test = np.array(test_data['price'])
test_data = (test_data - mean) / std
x_test = np.array(test_data.drop('price', axis='columns'))
y_pred = model.predict(x_test)
y_pred = np.reshape(y_pred * std['price'] + mean['price'], y_test.shape)
percentage_error = np.mean(np.abs(y_test - y_pred)) / np.mean(y_test) * 100
print("Model Percentage Error: {:.2f}%".format(percentage_error))

顯示的結果為:Model Percentage Error: 13.46%


上一篇
DAY21 - 迴歸問題 - 房價預測模型 - 4
下一篇
DAY23 - 二元分類問題 - 寶可夢對戰預測 - 1
系列文
AI初見 從零開始的TensorFlow生活30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言